package questions

// SingleChoiceQuestion 单选题实现
type SingleChoiceQuestion struct {
	BaseQuestion `json:",inline"`      // 嵌入基础题目结构
	Settings     *SingleChoiceSettings `json:"settings"` // 具体设置
}

// SingleChoiceSettings 单选题设置
type SingleChoiceSettings struct {
	Options        []*SingleChoiceOption `json:"options"`        // 选项列表
	CorrectOption  *int                  `json:"correctOption"`  // 正确选项ID
	DisplayType    string                `json:"displayType"`    // 显示类型
	Randomize      bool                  `json:"randomize"`      // 是否随机排序选项
	HasOtherOption bool                  `json:"hasOtherOption"` // 是否有"其他"选项
	Answer         *SingleChoiceAnswer   `json:"answer"`         // 单选题答案
}

// SingleChoiceOption 选项结构，用于选择题
type SingleChoiceOption struct {
	ID    *int   `json:"id"`              // 选项ID
	Text  string `json:"text"`            // 选项文本
	Value string `json:"value,omitempty"` // 选项值
	Order int    `json:"order"`           // 排序号
}

// SingleChoiceAnswer 单选题答案
type SingleChoiceAnswer struct {
	SelectedOptionID *int   `json:"selectedOptionId"`     // 选中的选项ID
	OtherValue       string `json:"otherValue,omitempty"` // "其他"选项的填写内容
}

// GetType 获取题目类型
func (s SingleChoiceSettings) GetType() QuestionType {
	return SingleChoice
}

// GetSettings 方法实现Question接口
func (sq SingleChoiceQuestion) GetSettings() *SingleChoiceSettings {
	return sq.Settings
}
